package com.advanced.date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

public class Date6 {

	public static void main(String[] args) {
		// 6：学士后结业考试的时间是每月倒数第二个周六上午8点，输出今年的考试时间
		// ，用yyyy/MM/dd hh时 的格式输出
		/**
		 * 2020-01-18 2020-02-22 2020-03-21 2020-04-18 2020-05-23 2020-06-20 2020-07-18
		 * 2020-08-22 2020-09-19 2020-10-24 2020-11-21 2020-12-19
		 */
		Calendar c = Calendar.getInstance();
		SimpleDateFormat s1 = new SimpleDateFormat("yyyy-MM-dd");// 定个格式

		for (int i = 0; i < 12; i++) {// 循环12次 找到每月的
			c.set(2020, i, 1);//
			ArrayList<String> list = new ArrayList();// 建个容器用字符串存每月的周六
			while (c.get(Calendar.MONTH) == i) {//
				if (c.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
					list.add(s1.format(c.getTime()));
				}
				c.add(Calendar.DATE, 1);
			}
			// System.out.println(list.get(list.size() - 1 - 1));
			String str = list.get(list.size() - 1 - 1);// 容器倒数第二个就是需要的周六了
			try {
				Date d = s1.parse(str);// 把取出来的周六再转回给日期，网上只查到怎么转回Date……
				System.out.println(
						String.format("%d/%d/%d ", d.getYear() + 1900, d.getMonth() + 1, d.getDate()) + "8:00是今年的考试时间");
			} catch (ParseException e) {
				// 系统非要我加的异常……
				e.printStackTrace();
				System.err.println("捕捉到错误！");
			}

		}

	}

}
